#ifndef _FIG_CRAFT_H_
#define _FIG_CRAFT_H_

#include "fig_life_obj.h"
#include "math/movement.h"
#include "ui/ui_manager.h"

class FIGBullet;
class FIGSFXManager;

class FIGCraft	: public FIGLifeObj
{
public:

	

	FIGCraft();

	virtual void				Render(const math::Vec2& Offset, float Scale);
	virtual void				RenderDebug(const math::Vec2& Offset, float Scale);
	virtual void				Tick(float dt);
	//virtual void				ReSpawn();
	virtual void				RenderShadow(const math::Vec2& Offset, float Scale);
	virtual void				Load(const std::string& Name);
	
	

	virtual void				Clear();
	void						GoForward(float dt);

	bool						IsInSideScreen();
	//virtual void				GotDamage(float Amount,FIGBullet* pBullet);


	virtual const math::Vec2&	GetPos() { return m_Pos; };
	//virtual const math::Vec2&	GetSize() { return m_Sprite.m_SizeOriginal; }; 
	virtual float				GetRadius() { return m_Radius; };
	virtual ui::UISprite*		GetSprite();
	virtual float				GetRotation() { return m_Rotation; };

protected:

	//virtual void				OnDie();
	virtual float				GetExtraRotation() const { return 0; };
	

	math::Vec2					m_Pos;	
	math::Movement				m_Movement;
	
	ui::UISprite				m_Sprite;
	ui::UISprite*				m_pSprite;	// some guy have multiple sprites ( player , dragon )
	
	float						m_Radius; 	
	float						m_Rotation;	
	float						m_Speed;
	float						m_MaxSpeed;
	
	COLOR						m_Color;
	
};

#endif